La fondazione del RAG
I modelli linguistici di grandi dimensioni (LLM) sono "congelati" nel tempo, limitati dal punto di interruzione dei dati usati per l'addestramento. Non possono rispondere a domande riguardanti il manuale interno della tua azienda o una riunione video privata di ieri.Generazione aumentata con recupero (RAG)colma questo divario fornendo al modello linguistico un contesto rilevante recuperato dai tuoi dati privati.
Il flusso di lavoro a più fasi
Per rendere i dati privati "leggibili" per un LLM, seguiamo una pipeline specifica:
- Caricamento:Convertire vari formati (PDF, Web, YouTube) in un formato documento standard.
- Suddivisione:Dividere documenti lunghi in pezzi più piccoli e gestibili.
- Incorporamento:Convertire i frammenti di testo in vettori numerici (rappresentazioni matematiche del significato).
- Archiviazione:Salvare questi vettori in un archivio vettoriale (come Chroma) per una ricerca di somiglianza estremamente rapida.
Perché la suddivisione è importante
I LLM hanno una "finestra di contesto" (limite sulla quantità di testo che possono elaborare in una volta). Se invii un PDF di 100 pagine, il modello fallirà. Suddividiamo i dati in blocchi per garantire che vengano inviate solo le parti più rilevanti all'interno del modello.
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>
Question 1
Why is
chunk_overlap considered a critical parameter when splitting documents for RAG?Challenge: Preserving Context
Apply your knowledge to a real-world scenario.
You are loading a YouTube transcript for a technical lecture. You notice that the search results are confusing "Lecture 1" content with "Lecture 2."
Task
Which splitter would be best for keeping context like "Section Headers" intact?
Solution:
MarkdownHeaderTextSplitter or RecursiveCharacterTextSplitter. These allow you to maintain document structure in the metadata, helping the retrieval system distinguish between different chapters or lectures.